import javax.microedition.lcdui.*;
import javax.microedition.pim.*;
import java.util.*;
import java.io.*;
public class ReadPIM extends Form  implements Runnable,CommandListener
{
	PIM pim;
	PIMList pimlist;
	Contact contact=null;
	Enumeration enumeration;
	PIMMidelt midlet;

	String contactName="";
	String contactNo="";

	StringItem name;
	StringItem telno;
	Thread thread=null;
	Command exitCmd = new Command("Exit",Command.EXIT,1);

	public ReadPIM(PIMMidelt midlet)
	{
		super("Reading contacts");
		this.midlet = midlet;

		pim = PIM.getInstance();
		thread = new  Thread(this);
		thread.start();
		addCommand(exitCmd);
		setCommandListener(this);

	}

	public void run()
	{
		readContacts();
	}

	public void readContacts()
	{
		String[] lists = pim.listPIMLists(pim.CONTACT_LIST);
		for (int i = 0; i < lists.length; i++)
		{
		try{
		pimlist = pim.openPIMList(pim.CONTACT_LIST,pim.READ_WRITE);
		}catch(Exception e){}


		try{
		enumeration = pimlist.items();
		}catch(Exception e){}

		while (enumeration.hasMoreElements())
		{
		 contact	=	(Contact)enumeration.nextElement();

		 try{
			if(pimlist.isSupportedField(Contact.FORMATTED_NAME)&& (contact.countValues(Contact.FORMATTED_NAME) >0))
			 {
				contactName += contact.getString(Contact.FORMATTED_NAME,0)  +"\r\n";;
				 System.out.println("COntact name:"+contactName);
			 }
		}catch( Exception e){}

		int phoneNos = contact.countValues(Contact.TEL);
		try{
			if(pimlist.isSupportedField(Contact.TEL) &&(contact.countValues(Contact.TEL) >0))
			contactNo += contact.getString(contact.TEL,0) +"\r\n";
			 System.out.println("contact No  :"+contactNo);
			}catch( Exception e){}

		}

		name = new StringItem("Name",contactName);
		telno = new StringItem("No",contactNo);

                append(name);
		append(telno);

		}
	}

	public void commandAction(Command c , Displayable d)
	{
		if(c == exitCmd)
		{
			midlet.destroyApp(true);
			midlet.notifyDestroyed();

		}

	}
}